import { request } from '@/api/request'
import type { LoginRequest, PasswordResetDirectRequest, TokenPair, User } from '@/api/types'

/**
 * 认证 API 模块
 * 所有认证相关请求统一从此处发起
 */
export function useAuthApi() {
  return {
    /**
     * 登录（JSON格式，支持"记住我"功能）
     */
    login(data: LoginRequest): Promise<TokenPair> {
      return request.post<TokenPair>('v1/auth/login', data, {
        // 登录页自行提示，拦截器跳过错误提示，避免重复
        skipErrorNotify: true,
      })
    },

    /**
     * 刷新令牌
     */
    refresh(refreshToken: string): Promise<TokenPair> {
      return request.post<TokenPair>('v1/auth/refresh', { refresh_token: refreshToken })
    },

    /**
     * 获取当前用户信息
     */
    me(): Promise<User> {
      return request.get<User>('v1/auth/me')
    },

    /**
     * 简化版密码重置（无邮件确认，直接输入2次新密码）
     */
    resetPasswordDirect(data: PasswordResetDirectRequest): Promise<{ message: string }> {
      return request.post<{ message: string }>('v1/auth/reset-password-direct', data)
    },
  }
}
